// 获取城市城市定位
import { cityInfo } from '@/api/home'

export default function currentCity() {
  //  先判断本地是否有定位城市的信息
  const localCity = JSON.parse(localStorage.getItem('hkzf_city'))
  if (!localCity) {
    // 如果没有，那就获取定位城市数据，用promise处理异步问题
    return new Promise((resolve, reject) => {
      const curCity = new window.BMapGL.LocalCity()
      curCity.get(async (res) => {
        try {
          const result = await cityInfo(res.name)
          console.log(result.data.body)
          // 获取的城市定位信息保存到本地种
          localStorage.setItem('hkzf_city', JSON.stringify(result.data.body))
          // 返回定位城市数据
          resolve(result.data.body)
        } catch (err) {
          // 获取定位失败
          reject(err)
        }
      })
    })
  }
  // 如果有，直接返回本地存储的数据
  // 因为上面返回的是promise所以为了使函数返回值保持一致，这里也要返回promise
  // 此处的promise不会失败，所以就不用除了错误的情况
  return Promise.resolve(localCity)
}
